// 页面路由模型
const { DB, Sequelize } = require('../database/DBinit');
const { DataTypes } = Sequelize;

const MicroRouter = DB.define(
  'micro_router',
  {
    // 菜单名称
    title: {
      field: 'title',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '菜单名称',
    },
    // 菜单顺序
    orderNum: {
      field: 'orderNum',
      type: DataTypes.INTEGER,
      allowNull: false, // 是否为null，默认为trues
      comment: '菜单顺序',
      defaultValue: 0,
    },
    // 菜单路径
    path: {
      field: 'path',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '菜单路径',
    },
    // 菜单状态
    status: {
      field: 'status',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '菜单状态，1:使用 2 禁用',
      defaultValue: '1',
    },
    // 菜单状态
    type: {
      field: 'type',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '菜单类型 ， 1目录 2 内部跳转 3 外链',
      defaultValue: '1',
    },
    // 菜单图标
    icon: {
      field: 'icon',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '菜单图标',
      defaultValue: '',
    },
    // 父节点id
    parentId: {
      field: 'parentId',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '父节点id',
      defaultValue: '',
    },
    // meta
    meta: {
      field: 'meta',
      type: DataTypes.JSON,
      allowNull: false, // 是否为null，默认为trues
      comment: 'meta信息',
      defaultValue: {},
    },
    // 所属微应用
    microAppId: {
      field: 'microAppId',
      type: DataTypes.STRING,
      allowNull: false, // 是否为null，默认为trues
      comment: '所属微应用',
      defaultValue: '',
    },
  },
  {
    // 不要忘记启用时间戳！
    timestamps: true, // 启用时间戳
    updatedAt: true, // 更新时间
    createdAt: true, //创建时间
    tableName: 'micro_router', // 表名称
    comment: '微应用路由',
  }
);

module.exports = MicroRouter;
